/**
 * Created by AngeloRobson on 11/01/2015.
 */
(function () {

    'use strict';

    angular.module('Club')
        .factory('VerFactory', ['$q', '$window', function ($q, $window) {


            function listarSocio(db, id, socios){

                var retorno = $q.defer();

                //iniciando nossa transação
                db.transaction(function (tx) {


                    //nossa query para exibir e se tiver sucesso teremos um call back
                    tx.executeSql('SELECT * FROM socio WHERE id=?', [id], function (tx, results) {
                        //pegaremos o total de dados

                        var len = results.rows.length, i;

                        for (i = 0; i < len; i++) {
                            //obtendo o item i
                            socios = results.rows.item(i);
                            //verifica se existe para evitar erros
                        }
                        retorno.resolve(socios);

                    });
                });

                return retorno.promise;


            }

            function buscarTodosDependentes (db, id, dependentesRetornado) {

                var retorno = $q.defer();

                //iniciando nossa transação
                db.transaction(function (tx) {


                    //nossa query para exibir e se tiver sucesso teremos um call back
                    tx.executeSql('SELECT * FROM dependente WHERE cod_socio=? ', [id], function (tx, results) {
                        //pegaremos o total de dados

                        var len = results.rows.length, i;


                        dependentesRetornado = []

                        function idadeAtual(nascimento, hoje) {
                            var diferencaAnos = hoje.getFullYear() - nascimento.getFullYear();
                            if ( new Date(hoje.getFullYear(), hoje.getMonth(), hoje.getDate()) <
                                new Date(hoje.getFullYear(), nascimento.getMonth(), nascimento.getDate()) )
                                diferencaAnos--;
                            return diferencaAnos;
                        }

                        for (i = 0; i < len; i++) {
                            //obtendo o item i
                            var  dependentes = results.rows.item(i);

                            var dataConvertida  = new Date(dependentes.data_obj);

                            var idade =  idadeAtual(dataConvertida, new Date());


                            //verifica se existe para evitar erros
                            if (dependentes) {

                                dependentesRetornado.push(

                                    {id: dependentes.id, nome: dependentes.nome, dataNascimento:dependentes.data_nascimento, idade: idade, parentesco: dependentes.parentesco }

                                );

                            }

                        }
                        retorno.resolve(dependentesRetornado);

                    });
                });

                return retorno.promise;
            }




            return {

                listarSocio: listarSocio,
                buscarTodosDependentes: buscarTodosDependentes

            }

        }]);


}());
